package com.tjbank.cssys.dto;

import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotBlank;
import com.tjbank.cssys.framework.base.dto.CommonDTO;
import com.tjbank.cssys.api.INode;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 菜单
 * 
 * Package : com.tansun.magicube.iam.dto
 * 
 * @author -- lijiangtao 2020年5月10日 下午5:49:44
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MenuDTO extends CommonDTO implements INode {

    /** ❤❤❤❤❤ */
    private static final long serialVersionUID = 1L;

    /** 菜单名称 */
    @NotBlank(message = "menuName:菜单名称不能为空")
    private String menuName;

    /** 父菜单ID */
    @NotBlank(message = "parentId:父菜单ID不能为空")
    private String parentId;

    /** 图标 */
    private String menuIcon;

    /** 请求地址 */
    @NotBlank(message = "menuUrl:请求地址不能为空")
    private String menuUrl;

    /** 排序 */
    private Integer menuSort;

    /** 动态页面 */
    private String pagePk;

    /** 是否动态 */
    private String isDynamicPage;

    private List<INode> children;

    @Override
    public List<INode> getChildren() {
        if (this.children == null) {
            this.children = new ArrayList<>();
        }
        return this.children;
    }
}
